#ifndef KEY_HANDLER_H
#define KEY_HANDLER_H

#include <stdint.h>
#include <stdbool.h>
#include "board.h"

// 按键事件类型枚举
typedef enum {
    KEY_EVENT_PRESSED = 0,      // 按键按下
    KEY_EVENT_RELEASED,         // 按键释放
    KEY_EVENT_LONG_PRESSED      // 按键长按
} key_event_t;

// 按键类型枚举
typedef enum {
    KEY_TYPE_WAIT = 0,          // 倒计时按键 (KEY1)
    KEY_TYPE_ALARM1,            // 闹钟1按键 (KEY4)
    KEY_TYPE_ALARM2,            // 闹钟2按键 (KEY2)
    KEY_TYPE_HOME               // HOME按键 (KEY3)
} key_type_t;

// 按键事件回调函数类型
typedef void (*key_event_callback_t)(key_type_t key_type, key_event_t event);

// 函数声明
void key_handler_init(void);
void key_handler_process(void);
void key_handler_register_callback(key_event_callback_t callback);
void key_handler_set_long_press_time(uint32_t time_ms);

#endif // KEY_HANDLER_H
